import java.util.Scanner;

public class demo {


//    二进制插入
//    给定两个32位整数n和m，同时给定i和j，将m的二进制数位插入到n的二进制的第j到第i位,保证n的第j到第i位均为零，
//    且m的二进制位数小于等于i-j+1，其中二进制的位数从0开始由低到高。
//测试样例：
//1024，19，2，6
//返回：1100

    public int binInsert(int n, int m, int j, int i) {
        m = m<<j;
        n = n|m;
        return n;
    }





    //  判断是否为素数
//    描述
//任意一个偶数（大于2）都可以由2个素数组成，组成偶数的2个素数有很多种情况，本题目要求输出组成指定偶数的两个素数差值最小的素数对。
//数据范围：输入的数据满足
//4≤n≤1000
//输入描述：
//输入一个大于2的偶数
//输出描述：
//从小到大输出两个素数
    public static boolean isPrime(int n) {
        for(int i = 2; i <= Math.sqrt(n); i++) {
            if(n % i == 0) {
                return false;
            }
        }
        return true;
    }
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        for(int i = n/2; i < n; i++) {

//            优化
//            boolean max = isPrime(i);
//            boolean min = isPrime(n - i);
//            if((max == true) && (min == true)) {
            if(isPrime(i) && isPrime(n - i)) {
                System.out.println(n - i);
                System.out.println(i);
                break;
            }
        }
    }
//    20
//    7
//    13
}
